<?php
define('PROTO_VERSION_MAJOR',       1);
define('PROTO_VERSION_MINOR',       19);
define('PROTO_VERSION',             ((PROTO_VERSION_MAJOR<<16)|PROTO_VERSION_MINOR));

define('CS_MAGIC',                  0xDEADBEEF); // C <-> S

/***************************************************************************

		ПРОТОКОЛ СВЯЗИ КЛИЕНТ-СЕРВЕР

 ***************************************************************************/

define('MRIM_CS_HELLO',             0x1001); // C -> S
define('MRIM_CS_HELLO_ACK',         0x1002); // S -> C

define('MRIM_CS_LOGIN',            0x1038); // C -> S
define('MRIM_CS_LOGIN_ACK',         0x1004); // S -> C
define('MRIM_CS_LOGIN_REJ',         0x1005); // S -> C

define('MRIM_CS_PING',              0x1006); // C -> S

define('MRIM_CS_MESSAGE',           0x1008); // C -> S
    define('MESSAGE_FLAG_OFFLINE',       0x00000001);
    define('MESSAGE_FLAG_NORECV',        0x00000004);
    define('MESSAGE_FLAG_AUTHORIZE',     0x0000000c);
    define('MESSAGE_FLAG_SYSTEM',        0x00000040);
    define('MESSAGE_FLAG_RTF',           0x00000080);
    define('MESSAGE_FLAG_CONTACT',       0x00000200);
    define('MESSAGE_FLAG_NOTIFY',        0x00200400);
    define('MESSAGE_FLAG_MULTICAST',     0x00001000);

    define('MAX_MULTICAST_RECIPIENTS',   50);
    define('MESSAGE_USERFLAGS_MASK',     0x000036A8);


define('MRIM_CS_MESSAGE_ACK',       0x1009); // S -> C
define('MRIM_CS_MESSAGE_RECV',      0x1011); // C -> S

define('MRIM_CS_MESSAGE_STATUS',    0x1012); // S -> C
    define('MESSAGE_DELIVERED',                0x0000);
    define('MESSAGE_REJECTED_NOUSER',          0x8001);
    define('MESSAGE_REJECTED_INTERR',          0x8003);
    define('MESSAGE_REJECTED_LIMIT_EXCEEDED',  0x8004);
    define('MESSAGE_REJECTED_TOO_LARGE',       0x8005);
    define('MESSAGE_REJECTED_DENY_OFFMSG',     0x8006);


define('MRIM_CS_USER_STATUS',       0x100F); // S -> C
    define('STATUS_OFFLINE',             0x00000000);
    define('STATUS_ONLINE',              0x00000001);
    define('STATUS_AWAY',                0x00000002);
    define('STATUS_UNDETERMINATED',      0x00000003);
    define('STATUS_EXTRA',               0x00000004);
    define('STATUS_FLAG_INVISIBLE',      0x80000000);


define('MRIM_CS_LOGOUT',            0x1013); // S -> C
    define('LOGOUT_NO_RELOGIN_FLAG',     0x0010); // Logout due to double login


define('MRIM_CS_CONNECTION_PARAMS', 0x1014); // S -> C

define('MRIM_CS_USER_INFO',         0x1015); // S -> C

define('MRIM_CS_ADD_CONTACT',       0x1019); // C -> S
    define('CONTACT_FLAG_REMOVED',       0x00000201);
    define('CONTACT_FLAG_GROUP',         0x00000002);
    define('CONTACT_FLAG_INVISIBLE',     0x00000004);
    define('CONTACT_FLAG_VISIBLE',       0x00000008);
    define('CONTACT_FLAG_IGNORE',        0x00000010);
    define('CONTACT_FLAG_SHADOW',        0x00000020);


define('MRIM_CS_ADD_CONTACT_ACK',   0x101A); // S -> C
    define('CONTACT_OPER_SUCCESS',       0x0000);
    define('CONTACT_OPER_ERROR',         0x0001);
    define('CONTACT_OPER_INTERR',        0x0002);
    define('CONTACT_OPER_NO_SUCH_USER',  0x0003);
    define('CONTACT_OPER_INVALID_INFO',  0x0004);
    define('CONTACT_OPER_USER_EXISTS',   0x0005);
    define('CONTACT_OPER_GROUP_LIMIT',   0x6);


define('MRIM_CS_MODIFY_CONTACT',         0x101B); // C -> S
define('MRIM_CS_MODIFY_CONTACT_ACK',     0x101C); // S -> C

define('MRIM_CS_OFFLINE_MESSAGE_ACK',    0x101D); // S -> C
define('MRIM_CS_DELETE_OFFLINE_MESSAGE', 0x101E); // C -> S

define('MRIM_CS_AUTHORIZE',         0x1020); // C -> S
define('MRIM_CS_AUTHORIZE_ACK',     0x1021); // S -> C

define('MRIM_CS_CHANGE_STATUS',     0x1022); // C -> S

define('MRIM_CS_GET_MPOP_SESSION',  0x1024); // C -> S
define('MRIM_CS_MPOP_SESSION',      0x1025); // S -> C
    define('MRIM_GET_SESSION_FAIL',      0);
    define('MRIM_GET_SESSION_SUCCESS',   1);


define('MRIM_CS_MAILBOX_STATUS',    0x1033); // S -> C

define('MRIM_CS_CONTACT_LIST',     0x1037); // S -> C
    define('GET_CONTACTS_OK',                  0x0000);
    define('GET_CONTACTS_ERROR',               0x0001);
    define('GET_CONTACTS_INTERR',              0x0002);
    define('CONTACT_INTFLAG_NOT_AUTHORIZED',   0x0001); // for user server_flag

define('MRIM_CS_WP_REQUEST',        0x1029); // C -> S
define('PARAMS_NUMBER_LIMIT',       50);
define('PARAM_VALUE_LENGTH_LIMIT',  64);

define('MRIM_CS_ANKETA_INFO',       0x1028); // S -> C
    define('MRIM_ANKETA_INFO_STATUS_OK',           1);
    define('MRIM_ANKETA_INFO_STATUS_NOUSER',       0);
    define('MRIM_ANKETA_INFO_STATUS_DBERR',        2);
    define('MRIM_ANKETA_INFO_STATUS_RATELIMERR',   3);
?>